A virtualized system may be described as one that provides a logical view of data to a host computer. That is, although the data may be physically stored on different storage devices, the virtualized system provides a view of the data to the host computer so that the host computer treats the data as being stored on one storage device. Then, when the data is to be stored or retrieved, the virtualized system maps the location of the data between the logical view and the physical storage.
Virtualized systems may have little visibility or control over the form that client data takes. For example, data from the host computer may be compressed, or encrypted, at higher layers in a stack. Another example is that certain classes of data may be compressible with different algorithms, or at different levels of efficiency. When virtualized systems store data, for efficiency purposes (such as reducing latency), compression attributes (such as how many zeroes are in the data) of data may be unknown or hard to assess against real time system requirements.
Redundant Array of Inexpensive Disk (RAID) storage adapters have a history of reading up persistent data for the purpose of periodically checking/verifying parity or redundancy of data. Additionally, the hardware/firmware engines in RAID storage adapters may have access to firmware or hardware compression engines.
The compression engines may compress and decompress data to be written to RAID storage and decompress data to be read from RAID storage.